home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / RELEASE < prev    next >
Text File  |  1995-11-01  |  7KB  |  182 lines

  1. Scsh is one
  2. ===========
  3.  
  4. Scheme shell version 0.1 was released to the Net exactly a year ago today,
  5. Halloween 1995.  We are pleased to release scsh version 0.4 to mark scsh's
  6. first birthday.  The new release has many bug fixes, improvements and new
  7. features. 
  8.  
  9. The text below gives a general description of scsh, instructions for
  10. obtaining it, pointers to discussion forums, and a description of the
  11. new features in release 0.4. To read this document with emacs outline
  12. mode, say M-x outline-mode.
  13.  
  14. * What is scsh
  15. ==============
  16. Scsh is a broad-spectrum systems-programming environment for Unix embedded
  17. in R4RS Scheme. 
  18.  
  19. ** Scsh as a scripting language
  20. -------------------------------
  21. Scsh has a high-level process notation for doing shell-script like tasks:
  22. running programs, establishing pipelines and I/O redirection. For example, the
  23. shell pipeline
  24.  
  25.     gunzip < paper.tex.gz | detex | spell | lpr -Ppulp &
  26.  
  27. would be written in scsh as
  28.  
  29.     (& (| (gunzip) (detex) (spell) (lpr -Ppulp))    ; Background a pipeline
  30.        (< paper.tex.gz))                ; with this redirection
  31.  
  32. Scsh embeds this process notation within a full Scheme implementation.
  33. The process notation is realized as a set of macro definitions, and is
  34. carefully designed to allow full integration with standard Scheme code.
  35. Scsh isn't Scheme-like; it is Scheme.
  36.  
  37. At the scripting level, scsh also has an Awk design, also implemented
  38. as a macro that can be embedded inside general Scheme code.
  39.  
  40. ** Scsh as a systems-programming language
  41. -----------------------------------------
  42. Scsh additionally provides the low-level access to the operating system
  43. normally associated with C. With the exception of signal handlers, the current
  44. release provides full access to Posix, plus important non-Posix extensions,
  45. such as complete sockets support. "Complete Posix" means: fork, exec & wait,
  46. sockets, full read, write, open & close, seek & tell, complete file-system
  47. access, including stat, chmod/chgrp/chown, symlink, FIFO & directory access,
  48. tty & pty support, file locking, pipes, select, file-name pattern-matching,
  49. time & date, environment variables, and more.
  50.  
  51. In brief, you can now write Unix systems programs in Scheme instead of C.
  52. For example, we have implemented an extensible HTTP server at MIT entirely
  53. in scsh.
  54.  
  55. As important as full access to the OS is the manner in which it is provided.
  56. Scsh integrates the OS support into Scheme in a manner which respects the
  57. general structure of the language. The details of the design are discussed
  58. in a joint MIT Lab for Computer Science/University of Hong Kong technical
  59. report, "A Scheme Shell," also to appear in a revised format in the *Journal 
  60. of Lisp and Symbolic Computation."  This paper is also available by ftp:
  61.     ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-paper.ps
  62.  
  63.  
  64. ** Scsh is a portable programming environment
  65. ---------------------------------------------
  66. Scsh is designed for portability. It is implemented on top of Scheme 48,
  67. a byte-code-interpreter Scheme implementation. The Scheme 48 virtual machine
  68. can be compiled on any system with a C compiler; the rest of Scheme 48 is
  69. machine-independent across 32-bit processors. Scsh's OS interface is
  70. also quite portable, providing a consistent interface across different
  71. Unix platforms. We currently have scsh implementations for
  72.     AIX,
  73.     CXUX,
  74.     FreeBSD,
  75.     HP-UX,
  76.     IRIX,
  77.     Linux,
  78.     NetBSD,
  79.     NeXTSTEP,
  80.     Solaris,
  81.     SunOS,
  82.     Ultrix
  83. Scsh code should run without change across these systems.
  84. Porting to new platforms is usually not difficult.
  85.  
  86.  
  87. * Obtaining and installing scsh
  88. ===============================
  89. You can get a copy of scsh via anonymous ftp, from
  90.     ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh.tar.gz
  91. The tar file includes a detailed manual and a paper describing
  92. the design of the system.
  93.  
  94. For the lazily curious, we also have the manual separately available as
  95.     ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-manual.ps
  96. Just click 'n view.
  97.  
  98. You *should* be able to build scsh on the standard platforms with exactly five
  99. commands: gunzip, tar, cd, ./configure, and make. The configure script figures
  100. out the special flags and switches needed to make the build work (thanks to
  101. the GNU project for the autoconfig tool that makes this possible).
  102.  
  103. After doing the make, you can start up a Scheme shell and try it out
  104. by saying
  105.     ./scshvm -o ./scshvm -i scsh/scsh.image
  106. See the manual for full details on the command-line switches.
  107.  
  108. If it's harder than this, and your system is standard, we'd like to know
  109. about it.
  110.  
  111.  
  112. * Getting in touch
  113. ==================
  114. There are two main ways to join in scsh-related discussion: the mailing-list
  115.     scsh@martigny.ai.mit.edu
  116. and the netnews group 
  117.     alt.lang.scheme.scsh
  118. These two forums are exactly equivalent, being bi-directionally gatewayed 
  119. at MIT.
  120.  
  121. Bugs can be reported to
  122.     scsh-bugs@martigny.ai.mit.edu
  123.  
  124. If you do not receive the alt netnews hierarchy, or wish to join the mailing
  125. list for other reasons, send mail to
  126.     scsh-request@martigny.ai.mit.edu
  127.  
  128.  
  129. * The World-Wide What?
  130. ======================
  131.  
  132. We even have one of those URL things: 
  133.     http://www-swiss.ai.mit.edu/scsh/scsh.html
  134.  
  135.  
  136. * New in this release
  137. =====================
  138.  
  139. ** New system calls.
  140.   select, file locking, full tty device control, ptys, set-file-times,
  141.   process timing, seek & tell. We still don't have signal handlers; with this
  142.   exception, Scsh now has all of Posix.
  143.  
  144. ** Automatic reaping of exited subprocesses.
  145.   You may wait on a subprocess zero, one, or more times without filling
  146.   up the kernel's process table or generating an error.
  147.  
  148. ** New delimited-input reader procedures.
  149.   You may read input delimited by a newline character (read-line),
  150.   a blank-line (read-paragraph), or a character from an arbitrary 
  151.   set (read-delimited). These procedures have native-code support
  152.   for reading from Unix input sources, and are quite fast.
  153.  
  154. ** Better support for writing standalone scripts.
  155.   It's much easier to write standalone scripts now. Scripts can use
  156.   the new command-line switches to open dependent modules and load
  157.   dependent source code. Scripts can also be written in the Scheme 48
  158.   module language.
  159.  
  160. ** Etc.
  161.   Control of I/O buffering policy, better error reporting, bug fixes,
  162.   here-strings, sub-second time precision, ...
  163.  
  164.  
  165. * Thanks
  166. ========
  167.  
  168. We thank Travis Broughton, Charlie Conklin, Jin S. Choi, Brian F. Dennis,
  169. Patrick May, Bill Sommerfeld, Michael Sperber, Steven L. Tamm, Ed Tobin, and
  170. others for bug reports, bug fixes, and comments that were incorporated into 
  171. this release.  We really appreciate their help, particularly in the task of
  172. porting scsh to new platforms.
  173.  
  174. We'd like to thank everyone else for their patience; this release seemed like
  175. a long time coming.
  176.  
  177. Brought to you by the Scheme Underground scsh team. Go forth and write
  178. elegant systems programs.
  179.     -Olin Shivers & Brian Carlstrom
  180.      Cambridge
  181.      31 October, 1995
  182.